import xlrd
import xlwt
from xlutils.copy import copy
from Config.Config import *

style = xlwt.XFStyle()  # 初始化样式

# 设置与字体相关的配置
font = xlwt.Font()  # 初始化字体

font.name = "微软雅黑"  # 设置字体名称

font.bold = True  # 字体加粗

font.height = 240  # 设置字体大小，excel里的字体大小为12，那在这里要乘以20，为240

# 将设置好的字样式，放入我们新建的样式当中
style.font = font  # 将设置好的字体配置，放入我们新建的样式当中

# 设置边框
borders = xlwt.Borders()  # 初始化边框

# 设置边框的上下左右样式
borders.top = xlwt.Borders.THIN  # THIN是细线框

borders.bottom = xlwt.Borders.THIN

borders.left = xlwt.Borders.THIN

borders.right = xlwt.Borders.THIN

# 将设置好的边框格式，放入我们新建的Excel样式当中
style.borders = borders  # 将设置好的边框格式，放入新建的样式中

# 设置对齐（上下，左右，居中对齐等）
alignment = xlwt.Alignment()  # 初始化对齐方式

alignment.horz = xlwt.Alignment.HORZ_CENTER  # horz,设置水平对齐方式,HORZ_CENTER为水平居中

alignment.vert = xlwt.Alignment.VERT_CENTER  # vert，设置垂直对齐方式，VERT_CENTER为垂直居中

# 将设置好的对齐方式放入新建的样式当中
style.alignment = alignment

# 设置背景颜色
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN

def write_to_excel_pass(data_file, sheet, row, cell):
    oldWb = xlrd.open_workbook(data_file,formatting_info=True)  # 先打开已存在的表
    newWb = copy(oldWb) # 复制
    newWs = newWb.get_sheet(sheet);  # 取sheet表
    pattern.pattern_fore_colour = 11
    style.pattern = pattern

    newWs.write(row, cell, "pass", style); # 写入2行4列写入pass
    newWb.save(data_path);  # 保存至result路径

def write_to_excel_fail(data_file, sheet,row, cell):
    oldWb = xlrd.open_workbook(data_file,formatting_info=True)  # 先打开已存在的表
    newWb = copy(oldWb) # 复制
    newWs = newWb.get_sheet(sheet); # 取sheet表
    pattern.pattern_fore_colour = 2
    style.pattern = pattern
    newWs.write(row, cell, "fail", style); # 写入2行4列写入pass
    newWb.save(data_path);  # 保存至result路径


def write_to_excel_res(data_file, sheet, row, cell, res):
    oldWb = xlrd.open_workbook(data_file,formatting_info=True)  # 先打开已存在的表
    newWb = copy(oldWb) # 复制
    newWs = newWb.get_sheet(sheet); # 取sheet表
    pattern.pattern_fore_colour = 22
    style.pattern = pattern
    newWs.write(row, cell, res, style); # 写入2行4列写入pass
    newWb.save(data_path);  # 保存至result路径
